Python多线程(四):生产者消费者问题 |
您所在的位置:网站首页 › 多个生产者 一个消费者怎么办 › Python多线程(四):生产者消费者问题 |
转载自:https://www.jianshu.com/p/1b3345aac5c1 生产者消费者问题是多线程中一个很经典并发协作的问题,这个问题主要包含两类线程,一个是生产者用于生产数据,另一个是消费者用于消费数据,两者操作同一个数据共享区域,这种模型在编程中非常常见,比如爬虫,生产者负责爬取链接,消费者负责解析链接所指向的网页内容。这种模型需要满足下面的两个特征: 消费者在数据共享区域为空时阻塞,直到共享区域出现新数据。生产者在数据共享区域满时阻塞,直到数据共享区出现空位。 下面是一个简单的例子: import threading import time import random MAX_BUFF_LEN = 5 buff = [] lock = threading.Lock() class Producer(threading.Thread): def run(self): global buff while True: lock.acquire() if len(buff) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |